1. Field of the Invention
This invention relates in general to computer systems and in particular to the assignment of system resources to a hot inserted device in a computer system.
2. Description of the Related Art
Computer systems are information handling electronic systems which can be designed to give independent computing power to one user or a plurality of users. Computer systems may be found in many forms including, for example, mainframes, minicomputers, workstations, servers, personal computers, internet terminals, notebooks, and embedded systems. Computer systems include desk top, floor standing, rack mounted, or portable versions. A typical computer system includes at least one system processor, associated memory and control logic, and a number of peripheral devices that provide input and output for the system. Such peripheral devices may include display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, CD-ROM drives, printers, network capability cards, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives, CD-R drives, or DVDs.
Computer systems perform essential operations for many businesses thereby making computer system down time highly undesirable. Consequently, systems have been developed to allow devices to be xe2x80x9chot insertedxe2x80x9d to the computer system. Hot inserting typically refers to a process of operably coupling computer hardware to a computer system without stopping the execution of software or powering-down the computer system as a whole. The process may include stopping the execution of a part of the software or powering down part of the hardware.
Hot insertable devices may be mounted to adapter cards or housed in adapter carriages or carriers that are physically insertable into slots or bays of a computer system. The adapter card or carriage typically includes an electrical connector that physically connects to a bus connector such as a slot connector located on the bus. Typically, for hot insertion of a device, after the physical installation of the device in the computer system, system resources such as memory address space, I/O address space, interrupt assignments, and computer bus numbers are assigned to the device or devices (as with a multi device adapter circuit).
With a xe2x80x9clike-for-likexe2x80x9d hot removal and insertion, where an old adapter card is hot replaced by an adapter card of the same type, the system resources assigned to the hot removed adapter card can be assigned to the hot inserted adapter card. However, if the hot inserted card is of a different type or if a new device is being added to the computer system, then new system resource assignments are typically needed. One system of hot insertion of a device mounted to an adapter card is set forth in of a Peripheral Component Interconnect (PCI) Hot-Plug Specification, Rev. 1.0.
Some systems for assigning system resources to a hot inserted device (other than in a like-for-like hot replacement, such as in a hot add or hot upgrade) include the rearrangement of the assigned resources for all devices on a bus. However, such a strategy typically requires the interruption of service in the devices whose system resource assignments are being moved. Another alternative is to reserve holes or apertures in the system resource for a computer bus that are larger than needed for the devices operably coupled to the computer bus during the startup of the computer system. One such system is described in PCI Hot Plug Application and Design, by Alan Goodrum, Annabooks, San Diego, Calif., 1998.
In order to assign system resources to a hot inserted device, the system must know how much of the system resource reserved for the bus has been assigned. This may present a problem if the device assignments are not stored in a memory device such as an NVRAM that is accessible to the hot insertion system.
It has been discovered that providing a computer system with a hot insertion system allows for system resources reserved for a computer bus to be assigned to a hot inserted adapter circuit. Assigning the system resources to an adapter circuit on a computer bus in a top down configuration allows the hot insertion system to assign a system resource to an adapter circuit without having to store the system resource assignments in a memory accessible to a hot insertion system. Assignable capacity can be determined from the lowest assigned value of the system resource.
In one aspect, the invention includes a method for assigning system resources to an adapter circuit for a hot insertion of the adapter circuit to a computer bus of a computer system, The method includes determining a lowest assigned value assigned to a device on the computer bus of a system resource reserved for the computer bus. The method also includes determining a required quantity of the system resource required by the adapter circuit and determining whether the system resource reserved for the computer bus has an adequate assignable capacity for the required quantity below the lowest assigned value. The method further includes assigning to the adapter circuit a portion of the system resource located below the lowest assigned value if the system resource reserved for the computer bus is determined to have an adequate assignable capacity.
In another aspect of the invention, a computer system includes a computer bus having at least one hot insertable adapter connector for coupling an adapter circuit to the computer bus and at least one non volatile memory storing computer executable hot insertion code for assigning at least one system resource of the computer system to an adapter circuit hot inserted to the computer system via a hot insertable adapter connector of the computer bus. Execution of the computer executable hot insertion code determines a lowest assigned value assigned to a device on the computer bus of a system resource reserved for the computer bus and determines a required quantity of the system resource required by the adapter circuit. Execution of the computer executable hot insertion code also determines whether the system resource reserved for computer bus has an adequate assignable capacity for the required quantity below the lowest assigned value and assigns to the adapter circuit a portion of the system resource reserved for the computer bus located below the lowest assigned value if the system resource reserved for the computer bus is determined to have an adequate assignable capacity.
In another aspect of the invention, a computer system includes a computer bus having at least one hot insertable adapter connector and a hot insertion system for assigning at least one system resource to an adapter circuit hot inserted to a computer system via a hot insertable adapter connector of the computer bus. The hot insertion system assigns a portion of a system resource reserved for a computer bus to an adapter circuit hot inserted to the computer system via a hot insertable adapter connector of the computer bus. The portion assigned being located below a lowest assigned value assigned to a device operably coupled to the computer bus.
In another aspect of the invention, an article of manufacture includes a computer readable media storing computer executable hot insertion code for assigning at least one system resource of the computer system to an adapter circuit hot inserted to the computer system via a hot insertable adapter connector of a computer bus. Execution of the computer executable hot insertion code determines a lowest assigned value assigned to a device on the computer bus of a system resource reserved for the computer bus determines a required quantity of the system resource required by the adapter circuit. Execution of the computer executable hot insertion code also determines whether the system resource reserved for the computer bus has an adequate assignable capacity for the required quantity below the lowest assigned value and assigns to the adapter circuit a portion of the system resource reserved for the computer bus located below the lowest assigned value if the system resource reserved for the computer bus is determined to have an adequate assignable capacity.